#!/bin/bash

CONFIG_FILE="vserial.conf"
MODULE_NAME="vserial_stj"

echo "=== 从配置文件加载虚拟串口模块 ==="

# 检查配置文件是否存在
if [ ! -f "$CONFIG_FILE" ]; then
    echo "错误: 配置文件 $CONFIG_FILE 不存在"
    echo "请创建配置文件或使用默认配置"
    exit 1
fi

# 编译配置工具和模块
echo "1. 编译模块和配置工具..."
make clean && make

if [ $? -ne 0 ]; then
    echo "编译失败！"
    exit 1
fi

# 解析配置文件并生成加载命令
echo "2. 解析配置文件..."
LOAD_CMD=$(./vserial_config.sh -c "$CONFIG_FILE" | grep "sudo insmod" | tail -1)

if [ -z "$LOAD_CMD" ]; then
    echo "错误: 无法生成加载命令"
    exit 1
fi

echo "3. 卸载旧模块..."
sudo rmmod $MODULE_NAME 2>/dev/null

echo "4. 加载新模块..."
echo "执行命令: $LOAD_CMD"
eval $LOAD_CMD

if [ $? -ne 0 ]; then
    echo "加载模块失败！"
    exit 1
fi

echo "5. 检查设备文件..."
ls -la /dev/ttyV* 2>/dev/null

if [ $? -eq 0 ]; then
    echo "6. 设置设备权限..."
    sudo chmod 666 /dev/ttyV*
    
    echo "7. 显示设备信息..."
    ./vserial_config.sh -p "$CONFIG_FILE"
    
    echo "=== 模块加载成功 ==="
    echo "设备文件已创建，可以使用以下命令测试:"
    echo "  ./serial_test /dev/ttyV0"
    echo "  ./serial_test /dev/ttyV1"
    echo "  ..."
else
    echo "错误: 设备文件创建失败"
    exit 1
fi 